package com.xuelang.pipeline.domain.project.repository;

import com.xuelang.pipeline.domain.project.ProjectType;

import java.util.List;

/**
 * <p>项目类型实体</p>
 *
 * @author : yixin.lys
 * @date : 2024-09-02 15:53
 **/
public interface ProjectTypeRepository {

    /**
     * 新增项目类型
     *
     * @param projectType 项目类型实体
     * @return 返回新增的项目类型ID
     */
    Integer createProjectType(ProjectType projectType);

    /**
     * 根据项目类型ID删除项目类型
     *
     * @param id 项目类型ID
     * @return 返回是否删除成功
     */
    boolean deleteProjectTypeById(Integer id);

    /**
     * 更新项目类型信息
     *
     * @param projectType 项目类型实体
     * @return 返回是否更新成功
     */
    boolean updateProjectType(ProjectType projectType);

    /**
     * 根据项目类型ID查询项目类型
     *
     * @param id 项目类型ID
     * @return 返回对应的项目类型实体
     */
    ProjectType findProjectTypeById(Integer id);

    /**
     * 查询所有项目类型
     *
     * @return 返回项目类型列表
     */
    List<ProjectType> findAllProjectTypes();

    /**
     * 批量更新项目类型
     * @param projectTypeList 项目类型数组
     * @return 返回是否成功
     */
    boolean batchUpdateProjectTypes(List<ProjectType> projectTypeList);

}
